package com.zhudi.service;

import com.zhudi.commen.BaseResponse;
import com.zhudi.domain.User;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author 朱朱朱朱蒂
* @description 针对表【user(用户信息表)】的数据库操作Service
* @createDate 2024-02-07 23:51:09
*/
public interface UserService extends IService<User> {


    /**
     * 登录方法
     * @param username 用户名
     * @param password 密码
     * @param request 浏览器请求
     * @return 返回脱敏后的数据
     */
    BaseResponse<User> login(String username, String password, HttpServletRequest request);

    /**
     * 注册方法
     * @param username 用户名
     * @param password 密码
     * @param confirmPassword 确认密码
     * @param request 浏览器请求
     * @return 返回脱敏后的数据
     */
    BaseResponse<Integer> register(String username, String password, String confirmPassword, HttpServletRequest request);

    /**
     * 注销操作
     * @param request 浏览器请求
     * @return 用户ID
     */
    Integer logout(HttpServletRequest request);

    /**
     * 获取所有用户信息
     * @return 所有用户信息
     */
    List<User> getAllUser();

    /**
     * 获取当前用户信息
     * @param userId 用户ID
     * @return 用户信息
     */
    User getCurrentUser(int userId);

    /**
     * 更新用户信息
     * @param updateUser 包含要更新的用户信息类
     * @param loginUser 登录的用户信息
     * @return 成功返回1
     */
    int update(User updateUser,User loginUser);

    /**
     * 用户判空检查
     * @param user 要检查的用户
     * @return 如果只有id不为空或者user为空，则返回true，否则返回false；
     */
    boolean isBlank(User user);

    /**
     * 判断一个用户是否是管理员
     * @param user 要判断的用户
     * @return 是为true
     */
    boolean  isAdmin(User user);

}
